// 1646
    public static int getMaximumGenerated(int n) {
        if(n==0) return 0;
        int len = n + 1;
        int[] num = new int[len];

        // 初始化数组
        for (int i = 0; i < len; i++) {
            num[i] = 0;
        }
        num[0] = 0;
        num[1] = 1;
        for (int i = 0; i < len; i++) {
            if (2 * i >= 2 && 2 * i <= n) {
                num[2 * i] = num[i];
            }
            if ((2 * i + 1) >= 2 && (2 * i + 1) <= n) {
                num[2 * i + 1] = num[i] + num[i + 1];
            }
        }
        int maxNum = 0;
        for (int i = 0; i < len; i++) {
            //System.out.print(num[i]+" ");
            if (num[i] > maxNum) maxNum = num[i];
        }
        //System.out.println();
        return maxNum;
    }